package nju.software.tagmanager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import nju.software.tagmanager.pojo.dto.ServiceQueryDTO;
import nju.software.tagmanager.pojo.dto.TagPageQueryDTO;
import nju.software.tagmanager.pojo.entity.Tag;
import nju.software.tagmanager.pojo.vo.TagVO;

import java.util.List;

/**
* @author 97942
* @description 针对表【tag(标签表)】的数据库操作Service
* @createDate 2024-01-12 16:03:24
*/
public interface TagService extends IService<Tag> {

    List<Tag> find(ServiceQueryDTO query);

    IPage<TagVO> search(TagPageQueryDTO query);

    void addTagByCategoryId(String tagName, Integer categoryId);


    /**
     * @author: raychou
     * @date: `2024-01-17` 10:56
     * @description: 找到只从属于特定类别的标签，即从属多个类别的不算，没有从属特定类别的不算
     */

    List<TagVO> findOnlyFollowing(Integer categoryId);

    void deleteById(Integer tagId);

    void deleteCascadeById(Integer tagId);
}
